package cn.xfdzx.android.apps.shop.contract;

import java.util.List;
import java.util.Map;

import cn.xfdzx.android.apps.shop.base.BaseView;
import cn.xfdzx.android.apps.shop.bean.AfterServiceUpLoadMoreImgBean;
import cn.xfdzx.android.apps.shop.bean.AfterServiceUpLoadSingImgBean;
import cn.xfdzx.android.apps.shop.bean.DissatisfiedReasonBean;
import cn.xfdzx.android.apps.shop.bean.MyRemakeListMarketBean;
import cn.xfdzx.android.apps.shop.bean.MyRemakeListRetailBean;
import cn.xfdzx.android.apps.shop.bean.PeiSongBeen;
import cn.xfdzx.android.apps.shop.bean.ShopRemakeListMarketBean;
import cn.xfdzx.android.apps.shop.bean.ShopRemakeListRetailBean;
import io.reactivex.Flowable;
import okhttp3.MultipartBody;


/**
 * @author zf
 * @date 2020/9/9.
 * Description：
 */

public interface OrderRemakeContract {
    interface Model {
        Flowable<AfterServiceUpLoadMoreImgBean> uploadMoreImg(List<MultipartBody.Part> files);

        Flowable<AfterServiceUpLoadSingImgBean> uploadSingImg(List<MultipartBody.Part> files);

        Flowable<DissatisfiedReasonBean> getDissatisfied();

        Flowable<DissatisfiedReasonBean> getRemakeRetail(Map<String,Object> map);

        Flowable<PeiSongBeen> getPeisongInfo(String order_id);

        Flowable<DissatisfiedReasonBean> getRemakeMarket(Map<String,Object> map);

        Flowable<MyRemakeListRetailBean> getMyRemakeListRetail( String limit, int page);

        Flowable<MyRemakeListMarketBean> getMyRemakeListMarket( String limit, int page);

        Flowable<MyRemakeListMarketBean> getDeleteRemake( String replyId, int type);

        Flowable<ShopRemakeListRetailBean> getShopRemakeRetail(Map<String,Object> map);

        Flowable<ShopRemakeListMarketBean> getShopRemakeMarket(Map<String,Object> map);

    }

    interface View extends BaseView {
        /**
         * 刷新完成
         */
        void finishRefresh();

        /**
         * 加载完成
         */
        void finishLoadMore();

        @Override
        void showLoading();

        @Override
        void hideLoading();

        @Override
        void onError(Throwable throwable);

        void onUploadMoreImgSuccess(AfterServiceUpLoadMoreImgBean bean);

        void onUploadSingImgSuccess(AfterServiceUpLoadSingImgBean bean);

        void onGetDissatisfiedSuccess(DissatisfiedReasonBean bean);

        void onGetRemakeRetailSuccess(DissatisfiedReasonBean bean);

        void getPeisongInfoSuccess(PeiSongBeen bean);

        void onGetRemakeMarketSuccess(DissatisfiedReasonBean bean);

        void onGetMyRemakeListRetailSuccess(MyRemakeListRetailBean bean);

        void onGetMyRemakeListMarketSuccess(MyRemakeListMarketBean bean);

         void onGetDeleteRemakeSuccess(MyRemakeListMarketBean bean);

        void onGetShopRemakeRetailSuccess(ShopRemakeListRetailBean bean);

        void onGetShopRemakeMarketSuccess(ShopRemakeListMarketBean bean);

    }

    interface Presenter {
        /**
         *多张图片上传
         */
        void uploadMoreImg(List<MultipartBody.Part> files);

        /**
         *单张图片上传
         */
        void uploadSingImg(List<MultipartBody.Part> files);

        /**
         *获取骑手不满意原因
         */
        void getDissatisfied();

        /**
         *评价零售订单
         */
        void getRemakeRetail(Map<String,Object> map);

        void getPeisongInfo(String order_id);

        void getRemakeMarket(Map<String,Object> map);

        /**
         *零售我的评价列表
         */
        void getMyRemakeListRetail(boolean isRefresh, boolean isLoading, String limit, int page);
        /**
         *批发我的评价列表
         */
        void getMyRemakeListMarket(boolean isRefresh, boolean isLoading, String limit, int page);

        void getDeleteRemake(String replyId, int type);

        void getShopRemakeRetail(boolean isRefresh, boolean isLoading,Map<String,Object> map);

        void getShopRemakeMarket(boolean isRefresh, boolean isLoading,Map<String,Object> map);

    }
}
